package request

type DriverCreate struct {
	UserId            int64  `json:"user_id" form:"user_id"`
	CityId            uint32 `json:"city_id" form:"city_id" binding:"required"`
	ManagerId         uint32 `json:"manager_id" form:"manager_id" binding:"required"`
	Name              string `json:"name" form:"name" binding:"required"`
	IdCard            string `json:"id_card" form:"id_card" binding:"required"`
	Mobile            string `json:"mobile" form:"mobile" binding:"required"`
	Sex               uint32 `json:"sex" form:"sex" binding:"required"`
	ContractStartTime string `json:"contract_start_time" form:"contract_start_time" binding:"required"`
	ContractEndTime   string `json:"contract_end_time" form:"contract_end_time" binding:"required"`
}

// 更新司机信息
type DriverUpdate struct {
	Id                               uint32 `json:"id" form:"id" binding:"required"`
	MobileCarriers                   int64  `json:"mobile_carriers" form:"mobile_carriers"`
	CompanyLogoImg                   string `json:"company_logo_img" form:"company_logo_img"`
	RegistrationDistrictCode         string `json:"registration_district_code" form:"registration_district_code"`
	DriverBirthday                   string `json:"driver_birthday" form:"driver_birthday"`
	Nationality                      string `json:"nationality" form:"nationality"`
	DriverNation                     string `json:"driver_nation" form:"driver_nation"`
	DriverLicenseNumber              string `json:"driver_license_number" form:"driver_license_number"`
	MaritalStatus                    int64  `json:"marital_status" form:"marital_status"`
	ForeignLanguageAbility           string `json:"foreign_language_ability" form:"foreign_language_ability"`
	AppVersion                       string `json:"app_version" form:"app_version"`
	MapType                          string `json:"map_type" form:"map_type"`
	Education                        string `json:"education" form:"education"`
	HouseholdRegistrationAuthority   string `json:"household_registration_authority" form:"household_registration_authority"`
	PermanentAddress                 string `json:"permanent_address" form:"permanent_address"`
	CommunicationAddress             string `json:"communication_address" form:"communication_address"`
	DriverPhotoFileNumber            string `json:"driver_photo_file_number" form:"driver_photo_file_number"`
	DriverLicense                    string `json:"driver_license" form:"driver_license"`
	ScanOfMotorVehicleDrivingLicense string `json:"scan_of_motor_vehicle_driving_license" form:"scan_of_motor_vehicle_driving_license"`
	PermittedVehicleType             string `json:"permitted_vehicle_type" form:"permitted_vehicle_type"`
	FirstDrivingLicense              string `json:"first_driving_license" form:"first_driving_license"`
	DriverLicenseStart               string `json:"driver_license_start" form:"driver_license_start"`
	DriverLicenseEnd                 string `json:"driver_license_end" form:"driver_license_end"`
	IsTourTaxiDriver                 int64  `json:"is_tour_taxi_driver" form:"is_tour_taxi_driver"`
	OnlineTaxiLicenseNumber          string `json:"online_taxi_license_number" form:"online_taxi_license_number"`
	OnlineTaxiLicenseIssuer          string `json:"online_taxi_license_issuer" form:"online_taxi_license_issuer"`
	LicenseIssueDate                 string `json:"license_issue_date" form:"license_issue_date"`
	FirstLicenseIssueDate            string `json:"first_license_issue_date" form:"first_license_issue_date"`
	LicenseValidStart                string `json:"license_valid_start" form:"license_valid_start"`
	LicenseValidEnd                  string `json:"license_valid_end" form:"license_valid_end"`
	EquipmentDate                    string `json:"equipment_date" form:"equipment_date"`
	IsFullTimeDriver                 int64  `json:"is_full_time_driver" form:"is_full_time_driver"`
	IsInBlacklist                    int64  `json:"is_in_blacklist" form:"is_in_blacklist"`
	ServiceType                      int64  `json:"service_type" form:"service_type"`
	ContractSignCompany              string `json:"contract_sign_company" form:"contract_sign_company"`
	EmergencyContact                 string `json:"emergency_contact" form:"emergency_contact"`
	EmergencyContactMobile           string `json:"emergency_contact_mobile" form:"emergency_contact_mobile"`
	EmergencyContactAddress          string `json:"emergency_contact_address" form:"emergency_contact_address"`
}
type VehicleBind struct {
	DriverId  uint32 `json:"driver_id" form:"driver_id" binding:"required"`
	VehicleId uint32 `json:"vehicle_id" form:"vehicle_id" binding:"required"`
	BindType  uint32 `json:"bind_type" form:"bind_type" binding:"required"`
}
type DriverIdImgCreate struct {
	DriverId                             uint32 `json:"driver_id" form:"driver_id" binding:"required"`
	PersonalAvatar                       string `json:"personal_avatar" form:"personal_avatar"`
	IdCardFront                          string `json:"id_card_front" form:"id_card_front" binding:"required"`
	IdCardBack                           string `json:"id_card_back" form:"id_card_back" binding:"required"`
	HeadIdCardBack                       string `json:"head_id_card_back" form:"head_id_card_back" binding:"required"`
	DriverLicenseFrout                   string `json:"driver_license_frout" form:"driver_license_frout" binding:"required"`
	ProfessionalQualificationCertificate string `json:"professional_qualification_certificate" form:"professional_qualification_certificate" binding:"required"`
	Others                               string `json:"others" form:"others"`
}
type DriverTrainingCourseCreate struct {
	DriverId   uint32 `json:"driver_id" form:"driver_id" binding:"required"`
	CourseName string `json:"course_name" form:"course_name" binding:"required"`
	CourseDate string `json:"course_date" form:"course_date" binding:"required"`
	StartDate  string `json:"start_date" form:"start_date" binding:"required"`
	EndDate    string `json:"end_date" form:"end_date" binding:"required"`
	Duration   uint32 `json:"duration" form:"duration" binding:"required"`
}
type BankAccountCreate struct {
	DriverId       uint32 `json:"driver_id" form:"driver_id" binding:"required"`
	BankName       string `json:"bank_name" form:"bank_name" binding:"required"`
	BankCardNumber string `json:"bank_card_number" form:"bank_card_number" binding:"required"`
}
type DriverList struct {
	DriverId uint32 `json:"driver_id" form:"driver_id" binding:"required"`
	Page     int64  `json:"page" form:"page"`
	PageSize int64  `json:"page_size" form:"page_size"`
}
type DriverLists struct {
	Page     int64 `json:"page" form:"page"`
	PageSize int64 `json:"page_size" form:"page_size"`
}

// DriverRevenue 营业额查询请求
type DriverRevenue struct {
    DriverId  int64  `json:"driver_id" form:"driver_id" binding:"required"`
    StartDate string `json:"start_date" form:"start_date" binding:"required"`
    EndDate   string `json:"end_date" form:"end_date" binding:"required"`
    Type      int32  `json:"type" form:"type" binding:"required"` // 1:日 2:月
}

// DriverCarpoolAddressList 请求
type DriverCarpoolAddressList struct {
    DriverId int64 `json:"driver_id" form:"driver_id" binding:"required"`
}

// DriverLoc 司机位置
type DriverLoc struct {
	DriverId uint32  `json:"driver_id" form:"driver_id" binding:"required"`
	CityId   uint32  `json:"city_id" form:"city_id" binding:"required"`
	Lat      float64 `json:"lat" form:"lat" binding:"required"`
	Lng      float64 `json:"lng" form:"lng" binding:"required"`
}
